﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FantastPlatform.Framework.Core;

namespace FantastPlatform.Framework.IModel
{
    /// <summary>
    /// 员工
    /// </summary>
    public interface IEmployee : IPerson
    {
        /// <summary>
        /// 入职时间
        /// </summary>
        DateTime? EntryDate { get; set; }
        /// <summary>
        /// 是否在职
        /// </summary>
        bool IsInService { get; set; }
        /// <summary>
        /// 离职时间 
        /// </summary>
        DateTime? QuitDate{ get; set; }
        /// <summary>
        /// 关联的用户
        /// </summary>
        IUser User { get; set; }
        /// <summary>
        /// 岗位
        /// 一个员工对应多个岗位
        /// </summary>
        IList<IEmployeePost> EmployeePosts { get; set; }
        /// <summary>
        /// 员工联系方式
        /// </summary>
        IList<IEmployeeContact> Contacts { get; set; }
        /// <summary>
        /// 职称
        /// </summary>
        IJobTitle JobTitle { get; set; }
        /// <summary>
        /// 绩效考核
        /// </summary>
        IList<IEmployeeCheckPerformance> EmployeeCheckPerformances { get; set; }
        /// <summary>
        /// 季度考核
        /// </summary>
        IList<IEmployeeCheckQuarter> EmployeeCheckQuarters { get; set; }
        /// <summary>
        /// 考核结果运用
        /// </summary>
        IList<IEmployeeCheckResult> EmployeeCheckResults { get; set; }
        /// <summary>
        /// 年度考核
        /// </summary>
        IList<IEmployeeCheckYear> EmployeeCheckYears { get; set; }
        /// <summary>
        /// 教育经历
        /// </summary>
        IList<IEmployeeEducation> EmployeeEducations { get; set; }
        /// <summary>
        /// 工作经历
        /// </summary>
        IList<IEmployeeJobExperience> EmployeeJobExperiences { get; set; }
        /// <summary>
        /// 奖惩状况
        /// </summary>
        IList<IEmployeePrizePunish> EmployeePrizePunishs { get; set; }
    }
}
